package com.shujia.szt

import org.apache.spark.sql.SparkSession

import scala.io.Source

object SparkSql {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = SparkSession
      .builder()
      .appName("szt")
      .enableHiveSupport()
      .getOrCreate()

    //执行sql文件路径
    //dwd_fact_szt_in_out_detail.sql
    val sqlPath: String = args.head
    //sql参数
    val ds: String = args.last

    //读取文件得到一个sql字符串
    val sqlStr: String = Source
      .fromFile(sqlPath)
      .getLines()
      .mkString("\n") //通过换行符拼接sql
      .replace("${ds}", ds)

    println("=" * 100)
    println(sqlStr)
    println("=" * 100)

    //多个sql通过分号分割
    val sqlArray: Array[String] = sqlStr.split(";")

    for (sql <- sqlArray) {
      //执行sql, 一次只能执行一个sql
      spark.sql(sql)
    }

  }

}
